{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Matplotlib图鉴——基础箱线图\n",
    "\n",
    "## 公众号：可视化图鉴"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.3.3\n",
      "1.2.0\n",
      "1.19.4\n"
     ]
    }
   ],
   "source": [
    "import matplotlib\n",
    "print(matplotlib.__version__) #查看Matplotlib版本\n",
    "import pandas as pd\n",
    "print(pd.__version__) #查看pandas版本\n",
    "import numpy as np\n",
    "print(np.__version__) #查看numpy版本\n",
    "import matplotlib.pyplot as plt \n",
    "plt.rcParams['font.sans-serif'] = ['STHeiti'] #设置中文"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意，代码在以下环境全部通过测试:\n",
    "- Python 3.7.1\n",
    "- Matplotlib == 3.3.3\n",
    "- pandas == 1.2.0\n",
    "- numpy == 1.19.4\n",
    "\n",
    "因版本不同，可能会有部分语法差异，如有报错，请先检查拼写及版本是否一致！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础箱线图 - 更改每个箱子的颜色、设置为槽型箱线图、增加网格线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kG9/+wTuuGMWZa7Q7t4dLr10JjvtdBS77ro773jHO8orpg0t9WK0+rCSmTdn5gXNc21qx57IzL29NYMkSYs3b948Ro3al5NPnkNHWKG96aZw3HFzOPDATzB//vwlX9AJNGi1vSRJanb66afSr9/jHHJIxwkTRxzRROZD/PCH3y+7lDbhXdIkSWqg+++/nx/84Lvcc8+shm3qtzS6dYNLLpnJttueyJ577s173vOesktaIQYcqUHWXXddvvqhXYho3G+0zGzYTrrz5r3BEUcc2ZC2pM5q7ty5fPazH+f002ezwQZlV7Owd74TTj55DqNG7cttt93bqe8W33krlzqZP02exNy5cxva5iqrrMKMGTMa1l7v3r0b1pbUGZ1yygmsv/7THHhgx12Sfcgh8/ntbx/n9NNP5RvfOLHscpabAUdqkB49etCjR48ln9jG+vbt2/A2JS3s7rvv5sILz+Hee2fRkW9RttJKMH78TLbe+rvstdeH2WKLLcouabl0oNE/SZKqadasWYwatS9nnz2LddYpu5ol22ADOOOM2YwatW/De57bij04ktRO1lprLe6/6X5O3Lhx3fzz589npQbOXJ07ay5vectblnxiF3fCCV9n0KDn2X//sitZeqNGJb/+9dOccsoJnHLKaWWXs8yialszL8ngwYNz2rTG3cW7o4iIym3DrSXzcy/fyy+/3NB9RdZcc01eeOGFhrXXo0cP+vXr17D2OqMpU6aw//67c//9s1hzzbKrWTb/93+w5Za9mThxMu9///vLLqdVEXFPZg5uedweHElqR6uvvnrD21xjjTUa3qZaN2PGDA48cD/OP7/zhRuAddaBs88uhtf+8peHOtVCAufgSJLUTo455it84AOv8KEPlV3J8tt/f9h88xc44YSvl13KMjHgSJLUDm666SYmTrySs86aXXYpK+y882ZxxRXjmTJlStmlLDUDjiRJbezVV19l9OiR/OQnr7PaamVXs+LWXBPOP38WBx64X0P31loRBhxJktrYkUcewl57zWC33cqupO186EPwgQ+8wjHHfKXsUpaKAUeSpDY0ceJEbr31Gs44Y07ZpbS5s86azcSJV3LTTTeVXcoSGXAkSWpD3/veSZxxxuusskrZlbS91VaD7373db73vZPKLmWJDDiSJLWhefPmsvbaZVfRftZeu3iPHZ0BR5IkVY4BR5Ik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\n",
      "text/plain": [
       "<Figure size 648x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "# 获取随机数据\n",
    "np.random.seed(129283729)\n",
    "data = [np.random.normal(0, std, size=100) for std in range(1, 5)]\n",
    "labels = ['A', 'B', 'C', 'D']   #柱子横坐标\n",
    "\n",
    "fig, ax1 = plt.subplots(figsize=(9, 8))\n",
    "# 增加notch\n",
    "bplot1 = ax1.boxplot(data,\n",
    "                     notch = True,\n",
    "                     vert=True, # 纵向画图\n",
    "                     patch_artist=True,  \n",
    "                     labels=labels)  # x轴\n",
    "ax1.set_title('我是标题')\n",
    "\n",
    "#遍历每个箱子对象\n",
    "colors = ['pink', 'lightblue', 'lightgreen', 'yellow']  \n",
    "for patch,color in zip(bplot1['boxes'],colors): #两两配对\n",
    "    patch.set_facecolor(color)   #设置每个箱子的颜色\n",
    "    \n",
    "plt.xlabel(\"我是x轴\", fontsize = 20)\n",
    "plt.ylabel(\"我是y轴\", fontsize = 20)\n",
    "plt.title('我是标题', fontsize = 20)\n",
    "plt.tick_params(labelsize=13)\n",
    "plt.grid()\n",
    "plt.savefig(\"O_04.png\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础箱线图 - 两组数据对比1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x1 = [2,3,4,2,4,5]\n",
    "y1 = [1,2,3,4,5,6]\n",
    "\n",
    "x2 = [5,6,4,3,4,5]\n",
    "y2 = [2,3,4,4,5,7]\n",
    "\n",
    "x3 = [2,2,4,9,10,11]\n",
    "y3 = [4,4,3,2,2,3]\n",
    "\n",
    "x4 = [9,3,2,2,3,2]\n",
    "y4 = [5,6,6,3,2,2]\n",
    "\n",
    "x_data = pd.DataFrame({\"A1\":x1, \"B1\":x2, \"C1\":x3, \"D1\":x4})\n",
    "y_data = pd.DataFrame({\"A2\":y1, \"B2\":y2, \"C2\":y3, \"D2\":y4})\n",
    "\n",
    "labels = ['A1','A2','B1','B2','C1','C2','D1','D2'] \n",
    "all_data = pd.concat([x_data, y_data],axis=1)\n",
    "\n",
    "width = 0.4\n",
    "fig, ax1 = plt.subplots(figsize=(9, 8))\n",
    "bplot1 = ax1.boxplot(all_data,\n",
    "                     vert=True,\n",
    "                     patch_artist=True,  \n",
    "                     widths = 0.4, labels=labels)\n",
    "\n",
    "colors = ['lightblue', 'lightgreen','lightblue', 'lightgreen','lightblue', 'lightgreen','lightblue', 'lightgreen']  \n",
    "for patch,color in zip(bplot1['boxes'],colors): #两两配对\n",
    "    patch.set_facecolor(color)   #设置每个箱子的颜色\n",
    "    \n",
    "plt.xlabel(\"我是x轴\", fontsize = 20)\n",
    "plt.ylabel(\"我是y轴\", fontsize = 20)\n",
    "plt.title('我是标题', fontsize = 20)\n",
    "plt.tick_params(labelsize=13)\n",
    "\n",
    "plt.savefig(\"O_05.png\")\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基础箱线图 - 两组数据对比2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8+YxcuRI3v3ud7PDDjvU+XY6ZNCUJEm9wiOPvMiChctqOfc2wwax117bb9Y+8+bN47LLLmPatGl8+MMf5rOf/SyPPvoo++67LyNGjODaa69lzpw5nH322ey999488MAD7LbbbgwdOpRTTjmFO++8k0MOOYSnn356TQjtbgyakiRJNbjvvvu4//77mTFjBvvvvz8AjzzyCC+++OKa6y1Hjx7N9OnTeeSRR9hpp50AOOWUU3j66adZuHAh/fr1Y8KECaxcuZJFixZx00031fZ+OmLQlCRJvcLmtijWbcKECcydO5drr72WgQMHMmDAAFasWMHixYs59NBDyUxWrlzJihUrWLZsGTvttBNPP/00p512GkuXLmX69OksWrSIT33qUzz66KOcccYZtLS0sHr1ajKz7rcHGDQlSZJq8cMf/pABAwYwdOhQBg0axJNPPsnxxx/PDTfcwNSpU5k8eTJHHHEEK1asYOHChWsGAR1zzDEAXHnllRx22GEce+yxDB06FChGnC9YsIBXXnmltvfVyKApSZJUg4MPPnjN85tvvpmJEyfywQ9+kBNOOIHW1lZOOukkpk2bxvjx49fMkdnm3nvv5frrr18zPdKyZcuICAYPHsx1113HtttuuzXfygY5YbskSVINZsyYwXnnncd+++3Hu9/9biZNmsRXv/pVAMaOHcsll1zCueeey3bbbceYMWM49dRTWbx4Md/61rc4+uijOfXUUxk7diy33nort9xyC0OGDCEi2GuvvXj++ee5/fbbAdaZBL7NrrvuynPPPVf5e7RFU5IkqQZPPfUU1113HSeffDKnn346I0eOXGf9SSedxLhx4/jZz37Gbbfdxh577EFEcNddd/GZz3yGSZMmAXDDDTdw/fXXc8455wBFsLzooou4+uqrOfzww9cMIqpDdJeLRTfHmDFjcvbs2XWXIUmSavLQQw+xzz771F1Gt/Xss8+yatUqdtlll6Ycb2O/74i4JzPHdLTOFk1JkqReps5WzEZeoylJkqRKGDQlSZJUCYOmJEmSKmHQlCRJUiUMmpIkSaqEQVOSJEmVMGhKkiR1EwsWLOCBBx5g4cKFdZfSFAZNSZKkmmQmV1xxBS+99BIAjz/+OAcccACPP/44AHfffTcnnnjimtcAS5cu5fbbb+euu+5i9uzZzJ49m1/96lc8+OCD6xx77ty5DBs2jDvvvHPNsmXLlnHuueey2267sd122/GOd7yDRx99tLL354TtkiRJNZk/fz7XXHMNn/70p7nhhhvYfvvtARg5ciQPP/wwJ554IscddxwjRoxYs8/ixYs56qij2HfffRk8eDAAzzzzDEcffTTXXHMNDz74ICNGjGDgwIEsWrSIHXfccc2+73nPe8hM7rjjDoYPH853vvMdjj76aB544AG22267pr8/WzQlSZJqMG/ePAYMGMBPfvITJk2axOjRo+nfv/+a9S+99BKf+MQn+N73vsfgwYNZsGABAIMGDQLg+uuvX9OiOWHCBAYOHAjA+PHjueqqq4iIdc73yCOP8POf/5yrrrqKXXbZheHDhzNlyhTe8pa38OMf/7iS92iLpiRJUg1OPvlkbrnlFgAGDBjA1KlT16wbPXo0AKtWrWLSpElkJmPHjmXGjBnrBcg2q1atAqC1tZXhw4evt37p0qV88pOfZNiwYess32233Xj22Web8p7aM2hKkiTV4Bvf+AarV6+mtbWVlpYWJkyYwMEHH8yFF17Ir3/9a+68804OP/xwBg8ezOLFi9e0di5fvhyAs846i2222QaABx98kAMOOGCj5zvggAPW22bFihXceOONfPvb367gHRo0JUlSLzH9+gf5w9Ov1HLu1+7yKsa9a7/N2mevvfYC4OWXX2b8+PHsvvvufOADH+DCCy9k6dKlzJgxg8mTJzN+/HimTJnCzjvvDBStn1dffTWrVq1i3rx5jBw5kne/+93ssMMOm1332Wefze67787YsWM3e9/O8BpNSZKkGsybN4+LLrqIffbZhze/+c185zvfYeXKley7776MGDGCa6+9ltmzZ/PEE0+w995788QTTwAwdOhQTjnlFPbee2/OOussjjzySE466STe9ra3bdb5L7roIn72s59x9dVXV/DuCrZoSpKkXmFzWxTrdt9993H//fczY8YM9t9/f6AYsPPiiy+uud5y9OjRTJ8+nUceeYSddtoJgFNOOYWnn36ahQsX0q9fPyZMmMDKlStZtGgRN910U6fOfeWVV/LlL3+ZO+64Y81I9yoYNCVJkmowYcIE5s6dy7XXXsvAgQMZMGAAK1asYPHixRx66KFkJitXrmTFihUsW7aMnXbaiaeffprTTjuNpUuXMn36dBYtWsSnPvUpHn30Uc444wxaWlpYvXo1mbnB8954442cffbZ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\n",
      "text/plain": [
       "<Figure size 648x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 模拟两组数据\n",
    "\n",
    "data_a = [[1,2,5], [5,7,2,2,5], [7,2,5], [2,3]]\n",
    "data_b = [[6,4,2], [1,2,5,3,2], [2,3,5,1], [3,7]]\n",
    "\n",
    "ticks = ['A', 'B', 'C','D']\n",
    "\n",
    "def set_box_color(bp, color):\n",
    "    plt.setp(bp['boxes'], color=color)\n",
    "    plt.setp(bp['whiskers'], color=color)\n",
    "    plt.setp(bp['caps'], color=color)\n",
    "    plt.setp(bp['medians'], color=color)\n",
    "\n",
    "plt.figure(figsize=(9, 8))\n",
    "\n",
    "bpl = plt.boxplot(data_a, positions=np.array(range(len(data_a)))*2.0-0.4, sym='', widths=0.6)\n",
    "bpr = plt.boxplot(data_b, positions=np.array(range(len(data_b)))*2.0+0.4, sym='', widths=0.6)\n",
    "set_box_color(bpl, '#bcbddc') # colors are from http://colorbrewer2.org/\n",
    "set_box_color(bpr, '#756bb1')\n",
    "\n",
    "plt.plot([], c='#bcbddc', label='类别1')\n",
    "plt.plot([], c='#756bb1', label='类别2')\n",
    "plt.legend(fontsize=15)\n",
    "\n",
    "plt.xticks(range(0, len(ticks) * 2, 2), ticks)\n",
    "plt.xlim(-2, len(ticks)*2) \n",
    "plt.ylim(0, 8) # y刻度\n",
    "plt.tight_layout()\n",
    "\n",
    "plt.xlabel(\"我是x轴\", fontsize = 20)\n",
    "plt.ylabel(\"我是y轴\", fontsize = 20)\n",
    "plt.title('我是标题', fontsize = 20)\n",
    "plt.tick_params(labelsize=15)\n",
    "plt.savefig(\"O_06.png\")\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
